package com.hmall.search.service.impl;

import com.hmall.common.dto.Filters;
import com.hmall.common.dto.FiltersVo;
import com.hmall.common.dto.Item;
import com.hmall.common.dto.PageDTO;
import com.hmall.config.ItemConfig;
import com.hmall.search.service.SearchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashSet;
import java.util.List;

/**
 * @Description SearchServiceimpl
 * @Author zhengyuan&junjun
 * @Date 2024-11-14
 */
@Service
public class SearchServiceimpl implements SearchService {
   @Autowired
    private ItemConfig itemConfig;

    @Override
    public FiltersVo filters(Filters filters) {
        PageDTO<Item> itemPageDTO = itemConfig.list(filters.getPage(),filters.getSize());
        List<Item> items = itemPageDTO.getList();
        //创建集合用来封装商品类型
        HashSet<String> category = new HashSet<>();
        //这个集合用来封装商品品牌数据
        HashSet<String> brand = new HashSet<>();
        //现在是所有商品相关的数据都在集合items中，所以通过遍历它取出所有商品数据
        items.forEach(i ->{
            category.add(i.getCategory());
            brand.add(i.getBrand());
        });
        return new FiltersVo(category,brand);
    }

    /**
     *
     * 基本搜索
     * ***/

    @Override
    public PageDTO<Item> find(Filters filters) {

        PageDTO<Item> itemPageDTO = itemConfig.finds(filters);


        return itemPageDTO;
    }
}
